import Vue from 'vue'
import App from './App.vue'
import './style/reset.less'
// 引入uploade
// import uploade from './views/'

import axios from './utils/request'
// 注册全局过滤器，实现路径拼接
Vue.filter('joinPath', (val) => {
  if (val && val.indexOf('http') != -1) {
    // 添加判断,如果val值已经存在基础路径了，则不执行
    return val
  }
  return axios.defaults.baseURL + val
})
// vant 组件库的使用
// 方式1 全部引入
// import Vant from "vant";
// import "vant/lib/index.css";
// Vue.use(Vant)
// 方式2 自动按需引入
// import Button from 'vant/lib/button'
// import 'vant/lib/button/style'
// Vue.use(Button)


// 方式3 引入注册 自动按需引入
import { Button } from 'vant';
import { Toast } from 'vant';
import { Cell, CellGroup } from 'vant';
import { NavBar } from 'vant';
import { Icon } from 'vant';
import { Uploader } from 'vant';
import { Dialog } from 'vant';
import { Field } from 'vant';
import { Tab, Tabs } from 'vant';
import { PullRefresh } from 'vant';
import { List } from 'vant';
import { ActionSheet } from 'vant';
import { Search } from 'vant';


// 全局注册
Vue.use(Search);//搜索功能
Vue.use(ActionSheet);//性别选择
Vue.use(List);//上拉刷新
Vue.use(PullRefresh);//下拉刷新
Vue.use(Tab);
Vue.use(Tabs);
Vue.use(Field);
Vue.use(Dialog);
Vue.use(Uploader);
Vue.use(Icon);
Vue.use(NavBar);
Vue.use(Cell);
Vue.use(CellGroup)
Vue.use(Toast);
Vue.use(Button);

// 添加导航守卫，做路由权限，比如：个人中心必须登录后才能访问（因为个人中心必须拿到登录后的用户id才能够渲染数据）
let arr = ["/personal", "/edit_profile"];
router.beforeEach((to, from, next) => {
  // console.log(to,from);
  let token = localStorage.getItem("hm-token-71");
  if (arr.indexOf(to.path) != -1 && !token) {
    Toast.fail('请先登录')
    next('/login'); // 当访问的页面是个人中心且没有登录的时候阻止跳转到个人中心页面
  } else {
    next();
  }
})
  // 引入路由对象
  // import router from "./router/index"
  // import hmInput from './components/hminput.vue'
  // 自定义组件
  // Vue.component('hmInput',hmInput)
  // Vue.config.productionTip = false

  new Vue({
    //router将路由对象注入到new vue实例中
    router: router,
    render: h => h(App),
  }).$mount('#app')
